#include<iostream>
#include<string>

class Integer
{
    public:
       //防止隐式转换 由explicit定义的函数禁止隐式转换
        explicit Integer(int a):a(a)
        {
        }
        void show()
        {
            std::cout << a << std::endl;
        }
    private:
        int a;
};
int main()
{
    Integer i(10);
    //i = 20;//  i=Integer(20)   构造函数的隐式转换：会把符合构造函数形式的变量变换成匿名对象
    i.show();
    return 0;
}